Conventionally, a full search method used in G.723.1 6.3-kbps speech codecs, a focused search method used in G.729 and G.723.1 5.3-kbps speech codecs, a depth-first tree search method used in G.729A, adaptive multi-rate (AMR)-narrow band (NB), AMR-wideband (WB) speech codecs, etc. are used as a fixed codebook search method.
Above-mentioned search methods have a problem of a heavy computational load compared with sound quality. To solve the problem, Korean Patent No. 10-0556831 (corresponding U.S. Patent Application Publication No. US20040193410), which was applied by the same applicant as the present application and registered, discloses a fixed codebook search method based on global pulse replacement. The method is used as a fixed codebook search method of 8 kbps mode in a G.729.1 speech codec adopted as an International Telecommunication Union-Telecommunication standardization sector (ITU-T) standard in April, 2006. The fixed codebook search method based on global pulse replacement disclosed in the patent will be described now with reference to FIG. 1.
As illustrated in FIG. 1, a conventional global-pulse replacement method comprises the steps of: determining an initial codevector from a pulse position likelihood estimate vector (step 110); calculating a criterion value Qpre used for searching a fixed codebook in an Algebraic Code-Excited Linear-Prediction (ACELP) speech coding method, from the initial codevector (step 120); calculating fixed codebook search criterion values for respective codevectors obtained by replacing pulses of the provisionally determined codevector one by one according to respective tracks (step 130); searching a largest value Qmax of the criterion values obtained by pulse replacement of all the tracks (step 140); comparing the largest value Qmax with the criterion value Qpre calculated from the codevector before pulse replacement (step 150); when the largest value Qmax is larger than the criterion value Qpre before pulse replacement, replacing a pulse with a pulse position generating the largest value Qmax and determining a new codevector (step 160); and after the steps 130 to 160 are iterated for predetermined times, finishing pulse replacement (steps 170 and 180).
In other words, according to the conventional global-pulse replacement method, pulse replacement is iterated in each pulse replacement process so that a criterion value continuously increases. Therefore, with the iteration of the pulse replacement process, an optimum codevector can be rapidly searched, but a computational load increases.